From: Giovanni Campagna Date: Mon, 28 Mar 2011 14:10:11 +0000 (+0200) Subject: VolumeStatus: track PulseAudio state and hide when disconnected X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~7900 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=a64e0e1f49a058eb41583f631bfc71e2731dddf9;p=gnome-shell.git VolumeStatus: track PulseAudio state and hide when disconnected Only show the menu when the associated GvcMixerControl is ready, as the connection can fail or PulseAudio may not be installed. https://bugzilla.gnome.org/show_bug.cgi?id=645708 --- diff --git a/js/ui/status/volume.js b/js/ui/status/volume.js index 0c02a9e60..98e8d30f6 100644 --- a/js/ui/status/volume.js +++ b/js/ui/status/volume.js @@ -29,7 +29,7 @@ Indicator.prototype = { PanelMenu.SystemStatusButton.prototype._init.call(this, 'audio-volume-muted', null); this._control = new Gvc.MixerControl({ name: 'GNOME Shell Volume Control' }); - this._control.connect('ready', Lang.bind(this, this._onControlReady)); + this._control.connect('state-changed', Lang.bind(this, this._onControlStateChanged)); this._control.connect('default-sink-changed', Lang.bind(this, this._readOutput)); this._control.connect('default-source-changed', Lang.bind(this, this._readInput)); this._control.connect('stream-added', Lang.bind(this, this._maybeShowInput)); @@ -102,9 +102,14 @@ Indicator.prototype = { this._notifyVolumeChange(); }, - _onControlReady: function() { - this._readOutput(); - this._readInput(); + _onControlStateChanged: function() { + if (this._control.get_state() == Gvc.MixerControlState.READY) { + this._readOutput(); + this._readInput(); + this.actor.show(); + } else { + this.actor.hide(); + } }, _readOutput: function() {